/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is Forte for Java, Community Edition. The Initial * Developer of the Original Code is Sun Microsystems, Inc. Portions * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */ package org.openide.execution; import java.beans.*; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.IOException; import java.util.Enumeration; import org.openide.*; /** Patch for backward compatibility of executors and debugger types. * * @author Jaroslav Tulach */ final class ExecutorType extends Object { static final class Handle extends Object implements java.io.Serializable { /** generated Serialized Version UID */ static final long serialVersionUID = 7233109534462148872L; /** name executor */ private String name; /** name of class of the executor */ private String className; /** Old compatibility version. */ private void readObject (ObjectInputStream ois) throws IOException, ClassNotFoundException { name = (String)ois.readObject (); className = (String)ois.readObject (); } /** Has also save the object. */ private void writeObject (ObjectOutputStream oos) throws IOException { oos.writeObject (name); oos.writeObject (className); } /** Convert to the new class. */ private Object readResolve () { ServiceType exc = null; // try to find the executor by name TopManager tm = TopManager.getDefault (); ServiceType.Registry r = tm.getServices (); exc = r.find (name); if (exc == null) { // try to find it by class try { exc = r.find ( Class.forName (className, true, tm.systemClassLoader ()) ); } catch (ClassNotFoundException ex) { } } return exc == null ? null : new org.openide.ServiceType.Handle (exc); } } } /* * Log * 4 Gandalf 1.3 1/16/00 Jaroslav Tulach Both inner and outer * class defined. * 3 Gandalf 1.2 10/22/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 2 Gandalf 1.1 9/21/99 Jaroslav Tulach If executor does not * exists => null is returned from readObject. * 1 Gandalf 1.0 9/19/99 Jaroslav Tulach * $ * Beta Change History: * 0 Tuborg 0.13 --/--/98 Jan Formanek reflecting changes in ExecInfo (#$@$#$@%@$@%!!!!) */